package com.study.d3_method_reference;

import java.util.Arrays;
import java.util.Comparator;

public class Test3 {
    public static void main(String[] args) {
        //特定类型方法引用：如果某个lambda表达式里只是调用一个实例方法，并且前面参数列表中的第一个参数是作为方法的主调，
        //后面的所有参数都是作为该实例的方法的入参的，则此时就可以使用特定类型的方法引用

        //对String按照字典序排列，忽略大小写！
        String[] arrs = {"wang","yi","Yao","chen","ying","帅哥","da","Wan"};
        Arrays.sort(arrs);
        System.out.println(Arrays.toString(arrs));
/*    1、    Arrays.sort(arrs, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareToIgnoreCase(o2);
            };
        });*/
//    2、    Arrays.sort(arrs, (o1,o2) -> o1.compareToIgnoreCase(o2));
        //特定类型方法引用：如果某个lambda表达式里只是调用一个实例方法，并且前面参数列表中的第一个参数是作为方法的主调，
        //后面的所有参数都是作为该实例的方法的入参的，则此时就可以使用特定类型的方法引用
        Arrays.sort(arrs, String::compareToIgnoreCase); //3
        System.out.println(Arrays.toString(arrs));
    }
}
